iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
2

如果你不喜歡 Ktor 裡面提供的 HTML DSL,那也沒關係,Ktor 裡還可以使用另一種方式產生畫面:FreeMarker

FreeMarker logo

FreeMarker 是一個基於 Java 的 template engine,可以透過 .ftl 檔案的模板,來生成 HTML 的原始碼。

和 HTML DSL 時一樣,我們在專案裡面,可以看到使用 FreeMarker template 的範例:

get("/html-freemarker") {
    call.respond(FreeMarkerContent(
        "index.ftl", 
        mapOf("data" to IndexData(listOf(1, 2, 3))), "")
    )
}

index.ftl 的位置在 resources/templates/index.ftl,內容如下:

<#-- @ftlvariable name="data" type="com.example.IndexData" -->
<html>
    <body>
        <ul>
        <#list data.items as item>
            <li>${item}</li>
        </#list>
        </ul>
    </body>
</html>

其中 <#list data.items as item> 這個語法,是 FreeMarker template 裡面的迴圈語法。

如果我們連線到 http://127.0.0.1:8080/html-freemarker ,然後檢視原始碼的話,可以看到產生的結構如下:

<html>
    <body>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </body>
</html>

以上就是另一個生成 HTML 畫面的方式。


上一篇
[Day 8] 談 Ktor 的 HTML DSL
下一篇
[Day 10] Ktor 處理 JSON 格式的回傳
系列文
最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言